package com.bgs.travelapp.scenic.controller;

import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.result.CommonResult;
import com.bgs.travelapp.scenic.entity.ScenicEntity;
import com.bgs.travelapp.scenic.service.ScenicService;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;

@RestController
@CrossOrigin
@RequestMapping("/scenic")
public class ScenicController {

    @Resource
    ScenicService scenicService;

    /**
     * 展示旅游足迹根据游玩景区（前台展示）
     * lzy 2022-8-4 20点23分
     * @param id
     * @return
     */
    @GetMapping("/getScenicListByOrder")
    public CommonResult getScenicListByOrder(Integer id){
        return CommonResult.ok(scenicService.getScenicListByOrder(id));
    }

    /**
      * hbx 2022年7月25日17:02:47
     * @param pageRequest
     * @return
     */
    @RequestMapping("/getScenicAll")
    public CommonResult getScenicAll(PageRequest pageRequest){
        return CommonResult.ok(scenicService.getScenicAll(pageRequest));
    }

    /**
     * 根据城市id查询景区信息
     * hbx 2022年7月5日10:52:00
     * @param pageRequest
     * @return
     */
    @RequestMapping("/getScenicAllByCityId")
    public CommonResult getScenicAllByCityId(PageRequest pageRequest, Integer cityId){
        return CommonResult.ok(scenicService.getScenicAllByCityId(pageRequest,cityId));
    }

    /**
     *根据景区名称进行查询（后台管理）
     * hbx 2022年7月6日11:27:16
     * @param pageRequest
     * @param scenicName
     * @return
     */
    @GetMapping("/findScenicByName")
    public CommonResult findScenicByName(PageRequest pageRequest,String scenicName){
        return CommonResult.ok(scenicService.findScenicByName(pageRequest,scenicName));
    }

    /**
     * * 新增景区景点信息（后端管理）
     *      * hbx 2022年7月5日15:56:00
     * @param file
     * @param scenicEntity
     * @return
     */
    @PostMapping("/saveScenic")
    public CommonResult saveScenic(MultipartFile[] file, ScenicEntity scenicEntity){
        return CommonResult.ok(scenicService.saveScenic(file,scenicEntity));
    }

    /**
     * 根据id修改景区景点信息（后端管理）
     * hbx 2022年7月5日19:28:31
     * @param scenicEntity
     * @return
     */
    @PutMapping("/editScenicById")
    public CommonResult editScenicById(MultipartFile[] file,ScenicEntity scenicEntity){
        return CommonResult.ok(scenicService.editScenicById(file,scenicEntity));
    }

    /**
     * 根据id删除景区景点信息（后端管理）
     * hbx 2022年7月5日20:39:09
     * @param id
     * @return
     */
    @DeleteMapping("deleteScenicById")
    public CommonResult deleteScenicById(Integer id){
        return CommonResult.ok(scenicService.deleteScenicById(id));
    }

    /**
     * 根据城市id查询景点信息（前端管理）
     * hbx 2022年7月12日14:58:05
     * @param cityId
     * @return
     */
    @GetMapping("scenicAllByCirtId")
    public CommonResult scenicAllByCirtId(Integer cityId){
        return CommonResult.ok(scenicService.scenicAllByCirtId(cityId));
    }

    /**
     * 后端新增校验景区名称是否重复（后端）
     * hbx 2022年7月14日15:24:58
     * @param scenicName
     * @return
     */
    @GetMapping("scenicAllByScenicName")
    public CommonResult scenicAllByScenicName(String scenicName){
        return CommonResult.ok(scenicService.scenicAllByScenicName(scenicName));
    }

    /**
     * 地图筛选根据城市获取景区信息 显示在地图上景区信息
     * (lzy 2022-7-15 15点20分)
     * @param cityId
     * @return
     */
    @GetMapping("/getScenicByCityId")
    public CommonResult getScenicByCityId(Integer cityId){
        return CommonResult.ok(scenicService.getScenicByCityId(cityId));
    }

    /**
     * 根据景区id查询景区详细信息
     * hbx 2022年7月19日08:39:49
     * @param id
     * @return
     */
    @GetMapping("/scenicDetailsAllById")
    public CommonResult scenicDetailsAllById(Integer id){
        return CommonResult.ok(scenicService.scenicDetailsAllById(id));
    }

    /**
     * 根据id查询景区第一张图片（后端）
     * hbx 2022年7月19日15:19:59
     * @param id
     * @return
     */
    @GetMapping("getScenicImageFirstById")
    public CommonResult getScenicImageFirstById(Integer id){
        return CommonResult.ok(scenicService.getScenicImageFirstById(id));
    }


    /**
     * 根据景区名称模糊查景区名称
     * hbx 2022年8月24日09:02:43
     * todo 白
     * @param scenicName
     * @return
     */
    @GetMapping("/getScenicNameByScenicName")
    public CommonResult getScenicNameByScenicName(String scenicName){
        return CommonResult.ok(scenicService.getScenicNameByScenicName(scenicName));
    }

    /**
     * 查询景区票价 （后端订单管理，新增订单）
     * fys 2022-8-17 10：33
     * @param Id
     * @return
     */
    @GetMapping("/getTicketPrice")
    public CommonResult getTicketPrice(Integer Id){
        return CommonResult.ok(scenicService.getTicketPrice(Id));
    }
}
